package model;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@NamedQueries({
		@NamedQuery(name = "Emprestimo.listar", query = "SELECT e FROM Emprestimo e"),
		@NamedQuery(name = "Emprestimo.buscarPorMatricula", query = "SELECT e FROM Emprestimo e WHERE e.usuario.matricula = :matricula") })
@Entity
public class Emprestimo implements Serializable {

	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private long id;
	@ManyToOne
	private Livro livro;
	@ManyToOne
	private Usuario usuario;
	@ManyToOne
	private Atendente atendente;
	@Temporal(TemporalType.DATE)
	private Date data;

	public Emprestimo() {

	}

	public Emprestimo(Livro livro, Usuario usuario, Atendente atendente,
			Date data) {
		super();
		this.livro = livro;
		this.usuario = usuario;
		this.atendente = atendente;
		this.data = data;
	}

	public long getId() {
		return id;
	}

	public void setId(long id) {
		this.id = id;
	}

	public Livro getLivro() {
		return livro;
	}

	public void setLivro(Livro livro) {
		this.livro = livro;
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public Atendente getAtendente() {
		return atendente;
	}

	public void setAtendente(Atendente atendente) {
		this.atendente = atendente;
	}

	public Date getData() {
		return data;
	}

	public void setData(Date data) {
		this.data = data;
	}

}
